我想知道我的 Python 应用程序的内存使用情况,特别想知道哪些代码块/部分或对象消耗了最多的内存。谷歌搜索显示一个商业版本是Python Memory Validator(仅限 Windows)。
开源的是PySizer和Heapy。
我没有尝试过任何人,所以我想知道哪个是最好的考虑:
提供大部分细节。
我必须对我的代码做最少的更改或不做任何更改。
guppy3使用起来非常简单。在您的代码中的某个时刻,您必须编写以下内容:
from guppy import hpy h = hpy() print(h.heap())
这会给你一些像这样的输出:
Partition of a set of 132527 objects. Total size = 8301532 bytes. Index Count % Size % Cumulative % Kind (class / dict of class) 0 35144 27 2140412 26 2140412 26 str 1 38397 29 1309020 16 3449432 42 tuple 2 530 0 739856 9 4189288 50 dict (no owner)
您还可以找出引用对象的位置并获取有关它的统计信息,但不知何故,有关的文档有点稀疏。
还有一个图形浏览器,用 Tk 编写。
对于 Python 2.x,请使用Heapy。